const path = require('path');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');

module.exports = {
    target: 'electron-main',  // 或 'electron-main' 根据应用类型设置
    resolve: {
        symlinks: true,  // 启用符号链接解析（默认值）
    },
    // 入口文件
    entry: './src/main/test.ts',

    entry: {
        test: './src/main/test.ts',    // 第一个入口文件
        worker: './src/main/worker.ts',    // 第二个入口文件
        preload: './src/main/sdk/preload.ts'    // 第二个入口文件
    },

    // 输出设置
    output: {
        filename: '[name].bundle.js',  // 输出文件名, [name] 代表入口文件的名字
        path: path.resolve(__dirname, 'dist')
    },

    // 模块解析规则
    resolve: {
        extensions: ['.ts', '.js'],  // 自动解析的文件扩展名
        alias: {
            '@lib': path.resolve(__dirname, 'src/lib/'),  // 路径别名
        }
    },

    // 模块加载器配置
    module: {
        rules: [
            {
                test: /\.ts$/,  // 匹配 .ts 文件
                use: {
                    loader: 'ts-loader',
                    options: {
                        transpileOnly: true,  // 只进行转换，不进行类型检查
                        happyPackMode: true,  // 启用多线程构建
                    },
                },
                exclude: /node_modules/,

            },
        ],
    },
    plugins: [
        new ForkTsCheckerWebpackPlugin(), // 启用类型检查
    ],
    // 开发工具（可选）
    devtool: 'source-map',  // 生成 source map 文件，便于调试
};